// C++ 中，将 char * 或 char[] 传递给 cout 进行输出，结果会是整个字符串，如果想要获得字符串的地址
// （第一个字符的内存地址），可使用以下方法：强制转化为其他指针（非 char*）。可以是 void *，int *，
// float *， double * 等。* 使用 &s[0] 不能输出 s[0]（首字符）的地址。因为 &s[0] 将返回 char*，
// 对于 char*（char 指针），cout 会将其作为字符串来处理，向下查找字符并输出直到字符结束 *。
#include <iostream>
 
using namespace std;
const int MAX = 3;
 
int main ()
{
   char  var[MAX] = {'a', 'b', 'c'};
   char  *ptr;
 
   // 指针中的数组地址
   ptr = var;
            
   for (int i = 0; i < MAX; i++)
   {

      cout << "Address of var[" << i << "] = ";
      cout << (int *)ptr << endl;
 
      cout << "Value of var[" << i << "] = ";
      cout << *ptr << endl;
 
      // 移动到下一个位置
      ptr++;
   }
   return 0;
}